lexer grammar DmSqlLexer;


// Keywords

ABORT:                                 'ABORT';
ABSOLUTE:                              'ABSOLUTE';
ABSTRACT:                              'ABSTRACT';
ACCESSED:                              'ACCESSED';
ACCOUNT:                               'ACCOUNT';
ACROSS:                                'ACROSS';
ACTION:                                'ACTION';
ADD:                                   'ADD';
ADMIN:                                 'ADMIN';
ADVANCED:                              'ADVANCED';
AFTER:                                 'AFTER';
AGGREGATE:                             'AGGREGATE';
ALL:                                   'ALL';
ALLOW_DATETIME:                        'ALLOW_DATETIME';
ALLOW_IP:                              'ALLOW_IP';
ALTER:                                 'ALTER';
ALWAYS:                                'ALWAYS';
ANALYZE:                               'ANALYZE';
AND:                                   'AND';
ANY:                                   'ANY';
APPLY:                                 'APPLY';
APR:                                   'APR';
ARCHIVE:                               'ARCHIVE';
ARCHIVEDIR:                            'ARCHIVEDIR';
ARCHIVELOG:                            'ARCHIVELOG';
ARCHIVESTYLE:                          'ARCHIVESTYLE';
ARRAY:                                 'ARRAY';
ARRAYLEN:                              'ARRAYLEN';
AS:                                    'AS';
ASC:                                   'ASC';
ASCII:                                 'ASCII';
ASENSITIVE:                            'ASENSITIVE';
ASSIGN:                                'ASSIGN';
ASYNCHRONOUS:                          'ASYNCHRONOUS';
ATTACH:                                'ATTACH';
AT_KEYWORD:                            'AT';
AUDIT:                                 'AUDIT';
AUG:                                   'AUG';
AUTHID:                                'AUTHID';
AUTHORIZATION:                         'AUTHORIZATION';
AUTO:                                  'AUTO';
AUTOEXTEND:                            'AUTOEXTEND';
AUTONOMOUS_TRANSACTION:                'AUTONOMOUS_TRANSACTION';
AUTO_INCREMENT:                        'AUTO_INCREMENT';
AUTO_UPDATE:                           'AUTO_UPDATE';
AVG:                                   'AVG';
BACKED:                                'BACKED';
BACKUP:                                'BACKUP';
BACKUPDIR:                             'BACKUPDIR';
BACKUPINFO:                            'BACKUPINFO';
BACKUPSET:                             'BACKUPSET';
BADFILE:                               'BADFILE';
BAKFILE:                               'BAKFILE';
BASE:                                  'BASE';
BATCH:                                 'BATCH';
BEFORE:                                'BEFORE';
BEGIN:                                 'BEGIN';
BETWEEN:                               'BETWEEN';
BIGDATEDIFF:                           'BIGDATEDIFF';
BIGINT:                                'BIGINT';
BINARY_KEYWORD:                        'BINARY';
BIT:                                   'BIT';
BITMAP:                                'BITMAP';
BLOB:                                  'BLOB';
BLOCK:                                 'BLOCK';
BODY:                                  'BODY';
BOOL:                                  'BOOL';
BOOLEAN:                               'BOOLEAN';
BOTH:                                  'BOTH';
BRANCH:                                'BRANCH';
BREADTH:                               'BREADTH';
BREAK:                                 'BREAK';
BSTRING:                               'BSTRING';
BTREE:                                 'BTREE';
BUFFER:                                'BUFFER';
BUILD:                                 'BUILD';
BULK:                                  'BULK';
BULK_EXCEPTION:                        'BULK_EXCEPTION';
BULK_ROWCOUNT:                         'BULK_ROWCOUNT';
BY:                                    'BY';
BYDAY:                                 'BYDAY';
BYHOUR:                                'BYHOUR';
BYMINUTE:                              'BYMINUTE';
BYMONTH:                               'BYMONTH';
BYMONTHDAY:                            'BYMONTHDAY';
BYSECOND:                              'BYSECOND';
BYTE:                                  'BYTE';
BYWEEKNO:                              'BYWEEKNO';
BYYEARDAY:                             'BYYEARDAY';
CACHE:                                 'CACHE';
CALCULATE:                             'CALCULATE';
CALL:                                  'CALL';
CASCADE:                               'CASCADE';
CASCADED:                              'CASCADED';
CASE:                                  'CASE';
CASE_SENSITIVE:                        'CASE_SENSITIVE';
CAST:                                  'CAST';
CATALOG:                               'CATALOG';
CATCH:                                 'CATCH';
CHAIN:                                 'CHAIN';
CHANGE:                                'CHANGE';
CHAR:                                  'CHAR';
CHARACTER:                             'CHARACTER';
CHARACTERISTICS:                       'CHARACTERISTICS';
CHECK:                                 'CHECK';
CHECKPOINT:                            'CHECKPOINT';
CIPHER:                                'CIPHER';
CLASS:                                 'CLASS';
CLOB:                                  'CLOB';
CLOSE:                                 'CLOSE';
CLUSTER:                               'CLUSTER';
CLUSTERBTR:                            'CLUSTERBTR';
COLLATE:                               'COLLATE';
COLLATION:                             'COLLATION';
COLLECT:                               'COLLECT';
COLUMN:                                'COLUMN';
COLUMNS:                               'COLUMNS';
COMMENT:                               'COMMENT';
COMMIT:                                'COMMIT';
COMMITTED:                             'COMMITTED';
COMMITWORK:                            'COMMITWORK';
COMPILE:                               'COMPILE';
COMPLETE:                              'COMPLETE';
COMPRESS:                              'COMPRESS';
COMPRESSED:                            'COMPRESSED';
CONDITIONAL:                           'CONDITIONAL';
CONNECT:                               'CONNECT';
CONNECT_BY_IS_CYCLE:                   'CONNECT_BY_IS_CYCLE';
CONNECT_BY_IS_LEAF:                    'CONNECT_BY_IS_LEAF';
CONNECT_BY_ROOT:                       'CONNECT_BY_ROOT';
CONNECT_IDLE_TIME:                     'CONNECT_IDLE_TIME';
CONNECT_TIME:                          'CONNECT_TIME';
CONST:                                 'CONST';
CONSTANT:                              'CONSTANT';
CONSTRAINT:                            'CONSTRAINT';
CONSTRAINTS:                           'CONSTRAINTS';
CONSTRUCTOR:                           'CONSTRUCTOR';
CONSTR_OP:                             'CONSTR_OP';
CONTAINS:                              'CONTAINS';
CONTEXT:                               'CONTEXT';
CONTINUE:                              'CONTINUE';
CONVERT:                               'CONVERT';
COPY:                                  'COPY';
CORRESPONDING:                         'CORRESPONDING';
CORRUPT:                               'CORRUPT';
COUNT:                                 'COUNT';
COUNTER:                               'COUNTER';
CPU_PER_CALL:                          'CPU_PER_CALL';
CPU_PER_SESSION:                       'CPU_PER_SESSION';
CREATE:                                'CREATE';
CROSS:                                 'CROSS';
CRYPTO:                                'CRYPTO';
CTLFILE:                               'CTLFILE';
CUBE:                                  'CUBE';
CUMULATIVE:                            'CUMULATIVE';
CURRENT:                               'CURRENT';
CURRENT_SCHEMA:                        'CURRENT_SCHEMA';
CURRENT_USER:                          'CURRENT_USER';
CURSOR:                                'CURSOR';
CYCLE:                                 'CYCLE';
DAILY:                                 'DAILY';
DANGLING:                              'DANGLING';
DATA:                                  'DATA';
DATABASE:                              'DATABASE';
DATAFILE:                              'DATAFILE';
DATE:                                  'DATE';
DATEADD:                               'DATEADD';
DATEDIFF:                              'DATEDIFF';
DATEPART:                              'DATEPART';
DATETIME:                              'DATETIME';
DAY:                                   'DAY';
DBFILE:                                'DBFILE';
DDL:                                   'DDL';
DDL_CLONE:                             'DDL_CLONE';
DEBUG:                                 'DEBUG';
DEC:                                   'DEC';
DECIMAL:                               'DECIMAL';
DECLARE:                               'DECLARE';
DECODE:                                'DECODE';
DEFAULT:                               'DEFAULT';
DEFERRABLE:                            'DEFERRABLE';
DEFERRED:                              'DEFERRED';
DEFINER:                               'DEFINER';
DELETE:                                'DELETE';
DELETING:                              'DELETING';
DELIMITED:                             'DELIMITED';
DELTA:                                 'DELTA';
DEMAND:                                'DEMAND';
DENSE_RANK:                            'DENSE_RANK';
DEPTH:                                 'DEPTH';
DEREF:                                 'DEREF';
DESC:                                  'DESC';
DETACH:                                'DETACH';
DETERMINISTIC:                         'DETERMINISTIC';
DEVICE:                                'DEVICE';
DIAGNOSTICS:                           'DIAGNOSTICS';
DICTIONARY:                            'DICTIONARY';
DIRECTORY:                             'DIRECTORY';
DISABLE:                               'DISABLE';
DISCONNECT:                            'DISCONNECT';
DISKGROUP:                             'DISKGROUP';
DISKSPACE:                             'DISKSPACE';
DISTINCT:                              'DISTINCT';
DISTRIBUTED:                           'DISTRIBUTED';
DML:                                   'DML';
DO:                                    'DO';
DOMAIN:                                'DOMAIN';
DOUBLE:                                'DOUBLE';
DOWN:                                  'DOWN';
DROP:                                  'DROP';
DUMP:                                  'DUMP';
EACH:                                  'EACH';
EDITIONABLE:                           'EDITIONABLE';
ELSE:                                  'ELSE';
ELSEIF:                                ('ELSEIF' | 'ELSIF');
EMPTY:                                 'EMPTY';
ENABLE:                                'ENABLE';
ENCRYPT:                               'ENCRYPT';
ENCRYPTION:                            'ENCRYPTION';
END:                                   'END';
EQU:                                   'EQU';
ERROR:                                 'ERROR';
ERRORS:                                'ERRORS';
ESCAPE:                                'ESCAPE';
EVALNAME:                              'EVALNAME';
EVENTINFO:                             'EVENTINFO';
EVENTS:                                'EVENTS';
EVERY:                                 'EVERY';
EXCEPT:                                'EXCEPT';
EXCEPTION:                             'EXCEPTION';
EXCEPTIONS:                            'EXCEPTIONS';
EXCEPTION_INIT:                        'EXCEPTION_INIT';
EXCHANGE:                              'EXCHANGE';
EXCLUDE:                               'EXCLUDE';
EXCLUDING:                             'EXCLUDING';
EXCLUSIVE:                             'EXCLUSIVE';
EXECUTE:                               'EXECUTE';
EXISTS:                                'EXISTS';
EXIT:                                  'EXIT';
EXPIRE:                                'EXPIRE';
EXPLAIN:                               'EXPLAIN';
EXTENDS:                               'EXTENDS';
EXTERN:                                'EXTERN';
EXTERNAL:                              'EXTERNAL';
EXTERNALLY:                            'EXTERNALLY';
EXTRACT:                               'EXTRACT';
FAILED_LOGIN_ATTEMPS:                  'FAILED_LOGIN_ATTEMPS';
FAILED_LOGIN_ATTEMPTS:                 'FAILED_LOGIN_ATTEMPTS';
FALSE:                                 'FALSE';
FAST:                                  'FAST';
FEB:                                   'FEB';
FETCH:                                 'FETCH';
FIELDS:                                'FIELDS';
FILE:                                  'FILE';
FILEGROUP:                             'FILEGROUP';
FILESIZE:                              'FILESIZE';
FILLFACTOR:                            'FILLFACTOR';
FINAL:                                 'FINAL';
FINALLY:                               'FINALLY';
FIRST:                                 'FIRST';
FLASHBACK:                             'FLASHBACK';
FLOAT:                                 'FLOAT';
FOLLOWING:                             'FOLLOWING';
FOR:                                   'FOR';
FORALL:                                'FORALL';
FORCE:                                 'FORCE';
FOREIGN:                               'FOREIGN';
FORMAT:                                'FORMAT';
FOUND:                                 'FOUND';
FREQ:                                  'FREQ';
FREQUENCE:                             'FREQUENCE';
FRI:                                   'FRI';
FROM:                                  'FROM';
FULL:                                  'FULL';
FULLY:                                 'FULLY';
FUNCTION:                              'FUNCTION';
GENERATE:                              'GENERATE';
GENERATED:                             'GENERATED';
GET:                                   'GET';
GLOBAL:                                'GLOBAL';
GLOBALLY:                              'GLOBALLY';
GOTO:                                  'GOTO';
GRANT:                                 'GRANT';
GREAT:                                 'GREAT';
GROUP:                                 'GROUP';
GROUPING:                              'GROUPING';
HASH:                                  'HASH';
HASHPARTMAP:                           'HASHPARTMAP';
HAVING:                                'HAVING';
HEXTORAW:                              'HEXTORAW';
HIDDEN_KEYWORD:                        'HIDDEN';
HIGH:                                  'HIGH';
HOLD:                                  'HOLD';
HOUR:                                  'HOUR';
HOURLY:                                'HOURLY';
HUGE:                                  'HUGE';
IDENTIFIED:                            'IDENTIFIED';
IDENTIFIER_KEYWORD:                    'IDENTIFIER';
IDENTITY:                              'IDENTITY';
IDENTITY_INSERT:                       'IDENTITY_INSERT';
IF:                                    'IF';
IFNULL:                                'IFNULL';
IGNORE:                                'IGNORE';
IGNORE_ROW_ON_DUPKEY_INDEX:            'IGNORE_ROW_ON_DUPKEY_INDEX';
IMAGE:                                 'IMAGE';
IMMEDIATE:                             'IMMEDIATE';
IN:                                    'IN';
INCLUDE:                               'INCLUDE';
INCLUDING:                             'INCLUDING';
INCREASE:                              'INCREASE';
INCREMENT:                             'INCREMENT';
INDEX:                                 'INDEX';
INDEXES:                               'INDEXES';
INDICES:                               'INDICES';
INITIAL:                               'INITIAL';
INITIALIZED:                           'INITIALIZED';
INITIALLY:                             'INITIALLY';
INLINE:                                'INLINE';
INNER:                                 'INNER';
INNERID:                               'INNERID';
INPUT:                                 'INPUT';
INSENSITIVE:                           'INSENSITIVE';
INSERT:                                'INSERT';
INSERTING:                             'INSERTING';
INSTANCE:                              'INSTANCE';
INSTANTIABLE:                          'INSTANTIABLE';
INSTEAD:                               'INSTEAD';
INT:                                   'INT';
INTEGER:                               'INTEGER';
INTENT:                                'INTENT';
INTERSECT:                             'INTERSECT';
INTERVAL:                              'INTERVAL';
INTO:                                  'INTO';
INVISIBLE:                             'INVISIBLE';
IS:                                    'IS';
ISOLATION:                             'ISOLATION';
JAN:                                   'JAN';
JAVA:                                  'JAVA';
JOB:                                   'JOB';
JOIN:                                  'JOIN';
JSON:                                  'JSON';
JSON_TABLE:                            'JSON_TABLE';
JUL:                                   'JUL';
JUN:                                   'JUN';
KEEP:                                  'KEEP';
KEY:                                   'KEY';
KEYS:                                  'KEYS';
LABEL:                                 'LABEL';
LARGE:                                 'LARGE';
LAST:                                  'LAST';
LAST2:                                 'LAST2';
LAX:                                   'LAX';
LEAD:                                  'LEADING';
LEFT:                                  'LEFT';
LEFTARG:                               'LEFTARG';
LESS:                                  'LESS';
LEVEL:                                 'LEVEL';
LEVELS:                                'LEVELS';
LEXER:                                 'LEXER';
LIKE:                                  'LIKE';
LIMIT:                                 'LIMIT';
LINK:                                  'LINK';
LIST:                                  'LIST';
LNNVL:                                 'LNNVL';
LOB:                                   'LOB';
LOCAL:                                 'LOCAL';
LOCALLY:                               'LOCALLY';
LOCAL_OBJECT:                          'LOCAL_OBJECT';
LOCATION:                              'LOCATION';
LOCK:                                  'LOCK';
LOCKED:                                'LOCKED';
LOG:                                   'LOG';
LOGFILE:                               'LOGFILE';
LOGGING:                               'LOGGING';
LOGIC:                                 'LOGIC';
LOGIN:                                 'LOGIN';
LOGOFF:                                'LOGOFF';
LOGON:                                 'LOGON';
LOGOUT:                                'LOGOUT';
LONG:                                  'LONG';
LONGVARBINARY:                         'LONGVARBINARY';
LONGVARCHAR:                           'LONGVARCHAR';
LOOP:                                  'LOOP';
LSN:                                   'LSN';
MANUAL:                                'MANUAL';
MAP:                                   'MAP';
MAPPED:                                'MAPPED';
MAR:                                   'MAR';
MATCH:                                 'MATCH';
MATCHED:                               'MATCHED';
MATERIALIZED:                          'MATERIALIZED';
MAX:                                   'MAX';
MAXPIECESIZE:                          'MAXPIECESIZE';
MAXSIZE:                               'MAXSIZE';
MAXVALUE:                              'MAXVALUE';
MAX_RUN_DURATION:                      'MAX_RUN_DURATION';
MAY:                                   'MAY';
MEMBER:                                'MEMBER';
MEMORY:                                'MEMORY';
MEM_SPACE:                             'MEM_SPACE';
MERGE:                                 'MERGE';
MICRO:                                 'MICRO';
MIN:                                   'MIN';
MINEXTENTS:                            'MINEXTENTS';
MINUS:                                 'MINUS';
MINUTE:                                'MINUTE';
MINUTELY:                              'MINUTELY';
MINVALUE:                              'MINVALUE';
MIRROR:                                'MIRROR';
MOD:                                   'MOD';
MODE:                                  'MODE';
MODIFY:                                'MODIFY';
MON:                                   'MON';
MONEY:                                 'MONEY';
MONITORING:                            'MONITORING';
MONTH:                                 'MONTH';
MONTHLY:                               'MONTHLY';
MOUNT:                                 'MOUNT';
MOVE:                                  'MOVE';
MOVEMENT:                              'MOVEMENT';
MULTISET:                              'MULTISET';
NATIONAL:                              'NATIONAL';
NATURAL:                               'NATURAL';
NCHAR:                                 'NCHAR';
NCHARACTER:                            'NCHARACTER';
NESTED_PATH:                           'NESTED_PATH';
NEVER:                                 'NEVER';
NEW:                                   'NEW';
NEXT:                                  'NEXT';
NO:                                    'NO';
NOARCHIVELOG:                          'NOARCHIVELOG';
NOAUDIT:                               'NOAUDIT';
NOBRANCH:                              'NOBRANCH';
NOCACHE:                               'NOCACHE';
NOCOPY:                                'NOCOPY';
NOCYCLE:                               'NOCYCLE';
NODE:                                  'NODE';
NOLOCK:                                'NOLOCK';
NOLOGGING:                             'NOLOGGING';
NOMAXVALUE:                            'NOMAXVALUE';
NOMINVALUE:                            'NOMINVALUE';
NOMONITORING:                          'NOMONITORING';
NONE:                                  'NONE';
NONEDITIONABLE:                        'NONEDITIONABLE';
NOORDER:                               'NOORDER';
NOPARALLEL:                            'NOPARALLEL';
NORMAL:                                'NORMAL';
NOROWDEPENDENCIES:                     'NOROWDEPENDENCIES';
NOSORT:                                'NOSORT';
NOT:                                   'NOT';
NOTFOUND:                              'NOT_FOUND';
NOT_ALLOW_DATETIME:                    'NOT_ALLOW_DATETIME';
NOT_ALLOW_IP:                          'NOT_ALLOW_IP';
NOV:                                   'NOV';
NOVALIDATE:                            'NOVALIDATE';
NOWAIT:                                'NOWAIT';
NULL:                                  'NULL';
NULLS:                                 'NULLS';
NUMBER:                                'NUMBER';
NUMERIC:                               'NUMERIC';
OBJECT:                                'OBJECT';
OCT:                                   'OCT';
OF:                                    'OF';
OFF:                                   'OFF';
OFFLINE:                               'OFFLINE';
OFFSET:                                'OFFSET';
OIDINDEX:                              'OIDINDEX';
OLD:                                   'OLD';
ON:                                    'ON';
ONCE:                                  'ONCE';
ONLINE:                                'ONLINE';
ONLY:                                  'ONLY';
OPEN:                                  'OPEN';
OPERATOR:                              'OPERATOR';
OPTIMIZE:                              'OPTIMIZE';
OPTION:                                'OPTION';
OR:                                    'OR';
ORDER:                                 'ORDER';
ORDINALITY:                            'ORDINALITY';
OUT:                                   'OUT';
OUTER:                                 'OUTER';
OVER:                                  'OVER';
OVERLAPS:                              'OVERLAPS';
OVERLAY:                               'OVERLAY';
OVERRIDE:                              'OVERRIDE';
OVERRIDING:                            'OVERRIDING';
PACKAGE:                               'PACKAGE';
PAD:                                   'PAD';
PAGE:                                  'PAGE';
PARALLEL:                              'PARALLEL';
PARALLEL_ENABLE:                       'PARALLEL_ENABLE';
PARMS:                                 'PARMS';
PARTIAL:                               'PARTIAL';
PARTITION:                             'PARTITION';
PARTITIONS:                            'PARTITIONS';
PASSING:                               'PASSING';
PASSWORD:                              'PASSWORD';
PASSWORD_GRACE_TIME:                   'PASSWORD_GRACE_TIME';
PASSWORD_LIFE_TIME:                    'PASSWORD_LIFE_TIME';
PASSWORD_LOCK_TIME:                    'PASSWORD_LOCK_TIME';
PASSWORD_POLICY:                       'PASSWORD_POLICY';
PASSWORD_REUSE_MAX:                    'PASSWORD_REUSE_MAX';
PASSWORD_REUSE_TIME:                   'PASSWORD_REUSE_TIME';
PATH:                                  'PATH';
PENDANT:                               'PENDANT';
PERCENT:                               'PERCENT';
PIPE:                                  'PIPE';
PIPELINED:                             'PIPELINED';
PIVOT:                                 'PIVOT';
PLACING:                               'PLACING';
PRAGMA:                                'PRAGMA';
PREBUILT:                              'PREBUILT';
PRECEDING:                             'PRECEDING';
PRECISION:                             'PRECISION';
PRESERVE:                              'PRESERVE';
PRETTY:                                'PRETTY';
PRIMARY:                               'PRIMARY';
PRINT:                                 'PRINT';
PRIOR:                                 'PRIOR';
PRIVATE:                               'PRIVATE';
PRIVILEGE:                             'PRIVILEGE';
PRIVILEGES:                            'PRIVILEGES';
PROCEDURE:                             'PROCEDURE';
PROFILE:                               'PROFILE';
PROTECTED:                             'PROTECTED';
PT_BULK_ROWCOUNT:                      'PT_BULK_ROWCOUNT';
PT_ROWCOUNT:                           'PT_ROWCOUNT';
PT_ROWCOUNT2:                          'PT_ROWCOUNT2';
PUBLIC:                                'PUBLIC';
PURGE:                                 'PURGE';
QUERY:                                 'QUERY';
QUERY_REWRITE_INTEGRITY:               'QUERY_REWRITE_INTEGRITY';
QUOTA:                                 'QUOTA';
RAISE:                                 'RAISE';
RANDOMLY:                              'RANDOMLY';
RANGE:                                 'RANGE';
RAWTOHEX:                              'RAWTOHEX';
READ:                                  'READ';
READONLY:                              'READONLY';
READ_PER_CALL:                         'READ_PER_CALL';
READ_PER_SESSION:                      'READ_PER_SESSION';
REAL:                                  'REAL';
REBUILD:                               'REBUILD';
RECORD:                                'RECORD';
RECORDS:                               'RECORDS';
RECURSIVE:                             'RECURSIVE';
REDUCED:                               'REDUCED';
REF:                                   'REF';
REFERENCE:                             'REFERENCE';
REFERENCES:                            'REFERENCES';
REFERENCING:                           'REFERENCING';
REFRESH:                               'REFRESH';
REJECT:                                'REJECT';
RELATED:                               'RELATED';
RELATIVE:                              'RELATIVE';
RENAME:                                'RENAME';
REPEAT:                                'REPEAT';
REPEATABLE:                            'REPEATABLE';
REPLACE:                               'REPLACE';
REPLAY:                                'REPLAY';
REPLICATE:                             'REPLICATE';
RESPECT:                               'RESPECT';
RESIZE:                                'RESIZE';
RESTORE:                               'RESTORE';
RESTRICT:                              'RESTRICT';
RESTRICT_REFERENCES:                   'RESTRICT_REFERENCES';
RESULT:                                'RESULT';
RESULT_CACHE:                          'RESULT_CACHE';
RETURN:                                'RETURN';
RETURNING:                             'RETURNING';
REUSE:                                 'REUSE';
REVERSE:                               'REVERSE';
REVOKE:                                'REVOKE';
REWRITE:                               'REWRITE';
RIGHT:                                 'RIGHT';
RIGHTARG:                              'RIGHTARG';
ROLE:                                  'ROLE';
ROLLBACK:                              'ROLLBACK';
ROLLFILE:                              'ROLLFILE';
ROLLUP:                                'ROLLUP';
ROOT:                                  'ROOT';
ROW:                                   'ROW';
ROWCOUNT:                              'ROWCOUNT';
ROWCOUNT2:                             'ROWCOUNT2';
ROWDEPENDENCIES:                       'ROWDEPENDENCIES';
ROWID:                                 'ROWID';
ROWNUM:                                'ROWNUM';
ROWS:                                  'ROWS';
ROWTYPE:                               'ROWTYPE';
RULE:                                  'RULE';
SALT:                                  'SALT';
SAMPLE:                                'SAMPLE';
SAT:                                   'SAT';
SAVE:                                  'SAVE';
SAVEPOINT:                             'SAVEPOINT';
SBYTE:                                 'SBYTE';
SCHEMA:                                'SCHEMA';
SCHEMABINDING:                         'SCHEMABINDING';
SCN:                                   'SCN';
SCOPE:                                 'SCOPE';
SCROLL:                                'SCROLL';
SEALED:                                'SEALED';
SEARCH:                                'SEARCH';
SECOND:                                'SECOND';
SECONDLY:                              'SECONDLY';
SECTION:                               'SECTION';
SEED:                                  'SEED';
SELECT:                                'SELECT';
SELF:                                  'SELF';
SENSITIVE:                             'SENSITIVE';
SEP:                                   'SEP';
SEQUENCE:                              'SEQUENCE';
SERERR:                                'SERERR';
SERIALIZABLE:                          'SERIALIZABLE';
SERVER:                                'SERVER';
SESSION:                               'SESSION';
SESSION_PER_USER:                      'SESSION_PER_USER';
SET:                                   'SET';
SETS:                                  'SETS';
SHADOW:                                'SHADOW';
SHARE:                                 'SHARE';
SHORT:                                 'SHORT';
SHUTDOWN:                              'SHUTDOWN';
SIBLINGS:                              'SIBLINGS';
SIMPLE:                                'SIMPLE';
SINCE:                                 'SINCE';
SIZE:                                  'SIZE';
SIZEOF:                                'SIZEOF';
SKIP_KEYWORD:                          'SKIP';
SMALLINT:                              'SMALLINT';
SNAPSHOT:                              'SNAPSHOT';
SOME:                                  'SOME';
SOUND:                                 'SOUND';
SPACE_KEYWORD:                         'SPACE';
SPAN:                                  'SPAN';
SPATIAL:                               'SPATIAL';
SPEED:                                 'SPEED';
SPFILE:                                'SPFILE';
SPLIT:                                 'SPLIT';
SQL:                                   'SQL';
STANDBY:                               'STANDBY';
START:                                 'START';
STARTUP:                               'STARTUP';
STAT:                                  'STAT';
STATEMENT:                             'STATEMENT';
STATIC:                                'STATIC';
STDDEV:                                'STDDEV';
STOP:                                  'STOP';
STORAGE:                               'STORAGE';
STORE:                                 'STORE';
STRICT:                                'STRICT';
STRING:                                'STRING';
STRIPING:                              'STRIPING';
STRUCT:                                'STRUCT';
STYLE:                                 'STYLE';
SUBPARTITION:                          'SUBPARTITION';
SUBPARTITIONS:                         'SUBPARTITIONS';
SUBSCRIBE:                             'SUBSCRIBE';
SUBSTITUTABLE:                         'SUBSTITUTABLE';
SUBSTRING:                             'SUBSTRING';
SUBTYPE:                               'SUBTYPE';
SUCCESSFUL:                            'SUCCESSFUL';
SUM:                                   'SUM';
SUN:                                   'SUN';
SUSPEND:                               'SUSPEND';
SWITCH:                                'SWITCH';
SYNC:                                  'SYNC';
SYNCHRONOUS:                           'SYNCHRONOUS';
SYNONYM:                               'SYNONYM';
SYSTEM:                                'SYSTEM';
SYS_CONNECT_BY_PATH:                   'SYS_CONNECT_BY_PATH';
TABLE:                                 'TABLE';
TABLESPACE:                            'TABLESPACE';
TABLESPACESET:                         'TABLESPACESET';
TASK:                                  'TASK';
TEMPLATE:                              'TEMPLATE';
TEMPORARY:                             'TEMPORARY';
TEXT:                                  'TEXT';
THAN:                                  'THAN';
THEN:                                  'THEN';
THREAD:                                'THREAD';
THROUGH:                               'THROUGH';
THROW:                                 'THROW';
THU:                                   'THU';
TIES:                                  'TIES';
TIME:                                  'TIME';
TIMER:                                 'TIMER';
TIMES:                                 'TIMES';
TIMESTAMP:                             'TIMESTAMP';
TIMESTAMPADD:                          'TIMESTAMPADD';
TIMESTAMPDIFF:                         'TIMESTAMPDIFF';
TIME_ZONE:                             'TIME_ZONE';
TINYINT:                               'TINYINT';
TO:                                    'TO';
TOP:                                   'TOP';
TRACE:                                 'TRACE';
TRACKING:                              'TRACKING';
TRAIL:                                 'TRAILING';
TRANSACTION:                           'TRANSACTION';
TRANSACTIONAL:                         'TRANSACTIONAL';
TRIGGER:                               'TRIGGER';
TRIGGERS:                              'TRIGGERS';
TRIM:                                  'TRIM';
TRUE:                                  'TRUE';
TRUNCATE:                              'TRUNCATE';
TRUNCSIZE:                             'TRUNCSIZE';
TRXID:                                 'TRXID';
TRY:                                   'TRY';
TUE:                                   'TUE';
TYPE:                                  'TYPE';
TYPEDEF:                               'TYPEDEF';
TYPEOF:                                'TYPEOF';
UINT:                                  'UINT';
ULONG:                                 'ULONG';
UNBOUNDED:                             'UNBOUNDED';
UNCOMMITTED:                           'UNCOMMITTED';
UNCONDITIONAL:                         'UNCONDITIONAL';
UNDER:                                 'UNDER';
UNION:                                 'UNION';
UNIQUE:                                'UNIQUE';
UNLIMITED:                             'UNLIMITED';
UNLOCK:                                'UNLOCK';
UNPIVOT:                               'UNPIVOT';
UNTIL:                                 'UNTIL';
UNUSABLE:                              'UNUSABLE';
UP:                                    'UP';
UPDATE:                                'UPDATE';
UPDATING:                              'UPDATING';
USAGE:                                 'USAGE';
USER:                                  'USER';
USE_HASH:                              'USE_HASH';
USE_MERGE:                             'USE_MERGE';
USE_NL:                                'USE_NL';
USE_NL_WITH_INDEX:                     'USE_NL_WITH_INDEX';
USHORT:                                'USHORT';
USING:                                 'USING';
VALUE:                                 'VALUE';
VALUES:                                'VALUES';
VARBINARY_KEYWORD:                     'VARBINARY';
VARCHAR:                               'VARCHAR';
VARCHAR2:                              'VARCHAR2';
VARIANCE:                              'VARIANCE';
VARRAY:                                'VARRAY';
VARYING:                               'VARYING';
VERIFY:                                'VERIFY';
VERSIONS:                              'VERSIONS';
VERSIONS_ENDTIME:                      'VERSIONS_ENDTIME';
VERSIONS_ENDTRXID:                     'VERSIONS_ENDTRXID';
VERSIONS_OPERATION:                    'VERSIONS_OPERATION';
VERSIONS_STARTTIME:                    'VERSIONS_STARTTIME';
VERSIONS_STARTTRXID:                   'VERSIONS_STARTTRXID';
VERTICAL:                              'VERTICAL';
VIEW:                                  'VIEW';
VIRTUAL:                               'VIRTUAL';
VISIBLE:                               'VISIBLE';
VOID:                                  'VOID';
VSIZE:                                 'VSIZE';
WAIT:                                  'WAIT';
WED:                                   'WED';
WEEK:                                  'WEEK';
WEEKLY:                                'WEEKLY';
WHEN:                                  'WHEN';
WHENEVER:                              'WHENEVER';
WHERE:                                 'WHERE';
WHILE:                                 'WHILE';
WITH:                                  'WITH';
WITHIN:                                'WITHIN';
WITHOUT:                               'WITHOUT';
WORK:                                  'WORK';
WRAPPED:                               'WRAPPED';
WRAPPER:                               'WRAPPER';
WRITE:                                 'WRITE';
XML:                                   'XML';
XMLAGG:                                'XMLAGG';
XMLATTRIBUTES:                         'XMLATTRIBUTES';
XMLELEMENT:                            'XMLELEMENT';
XMLPARSE:                              'XMLPARSE';
XMLTABLE:                              'XMLTABLE';
YEAR:                                  'YEAR';
YEARLY:                                'YEARLY';
ZONE:                                  'ZONE';


// Skip
WHILE_SPACE:                           [ \t\r\n]+    -> skip;
WHILE_COMMENT:                         '/*' (COMMENT | .)*? '*/' -> channel(HIDDEN);
LINE_COMMENT:                          '--' ~[\r\n]* -> channel(HIDDEN);


// Operators
OP_ASSIGN:                             ':=';
OP_ADD_ASSIGN:                         '+=';
OP_SUB_ASSIGN:                         '-=';
OP_MULT_ASSIGN:                        '*=';
OP_DIV_ASSIGN:                         '/=';
OP_MOD_ASSIGN:                         '%=';
OP_AND_ASSIGN:                         '&=';
OP_XOR_ASSIGN:                         '^=';
OP_OR_ASSIGN:                          '|=';
OP_CONSTR:                             '||';
OP_CAST:                               '::';
OP_SHIFT_LEFT:                         '<<';
OP_SHIFT_RIGHT:                        '>>';

OPR_NE:                                ('!='| '<>');
OPR_LE:                                '<=';
OPR_GE:                                '>=';
OPR_EQ:                                '==';
OPR_AEQ:                               '=>';
OPR_INC:                               '++';
OPR_DEC:                               '--';
//OPR_EQ_RIGHT_JOIN:                     '=*';

OP_SHIFT_RIGHT_ASSIGN:                 '>>=';
OP_SHIFT_LEFT_ASSIGN:                  '<<=';

OP_EQUAL:                              '=';
OP_NOT:                                '!';
OP_PLUS:                               '+';
OP_MINUS:                              '-';
OP_STAR:                               '*';
OP_DIVIDE:                             '/';
OP_MOD:                                '%';
OP_GREATER:                            '>';
OP_LESS:                               '<';
OP_BIT_NOT:                            '~';
OP_BIT_OR:                             '|';
OP_BIT_AND:                            '&';
OP_BIT_XOR:                            '^';


// Symbols
BOUNDARY:                              '..';
DOT:                                   '.';
UNDERLINE:                             '_';
AT:                                    '@';
SHARP:                                 '#';
DOLLAR:                                '$';
LR_BRACKET:                            '(';
RR_BRACKET:                             ')';
LR_SQUARE_BRACKET:                     '[';
RR_SQUARE_BRACKET:                     ']';
LR_BRACES:                             '{';
RR_BRACES:                             '}';
COMMA:                                 (',' | '\uff0c');
SEMI:                                  (';' | '\uff1b');
COLON:                                 ':';
PLACEHOLDER:                           '?';

OP_U_OPRT:                             OP_CHARS+?;

// Var
LT_GLOBAL_VAR:                         '@''@' IDENTIFIER;
LT_IDENTIFIER:                         ( IDENTIFIERX | IDENTIFIER | LT_DQUOTE_STRING );

// Const
LT_STRING:                             'N'? '\'' (~'\'' | '\'\'')* '\'';
LT_BITSTRING:                          [B] '\''  [^']*  '\'';
LT_INTEGER:                            DIGIT+;
LT_BINTEGER:                           '0' [X] (DIGIT|[A-F])+;
//LT_BIGINTEGER:                         DIGIT {20,};
//LT_DECIMAL:                            ( (DIGIT* '.' DIGIT+)|(DIGIT+ '.' DIGIT*) );
LT_DECIMAL:                            (DIGIT* '.' DIGIT+) ;
//LT_REAL:                              ((((DIGIT* '.' DIGIT+)|(DIGIT+ '.' DIGIT*)|(DIGIT+))([E][-+]? DIGIT+))|((DIGIT* '.' DIGIT+)|(DIGIT+ '.' DIGIT*)|(DIGIT+))) ([DF])?|{BINARY_FLOAT_INFINITY}|{BINARY_FLOAT_NAN}|{binary_double_infinity}|{binary_double_nan};
LT_REAL:                               (DIGIT+ | LT_DECIMAL)('E'([+-]? DIGIT+)?);


// frament
fragment DIGIT:                        [0-9];
//fragment DIGIT_PARAM:                  '@' DIGIT+;
fragment CLETTER_H:                    [\u0080-\u00FF];
fragment CLETTER_T:                    [\u0000-\u00FF];
fragment CLETTER:                      [\u4e00-\u9fa5];

fragment LETTER1:                      (CLETTER | [_A-Z$#]);
fragment LETTER_OR_DIGIT1:             (CLETTER | [_A-Z0-9$#]);
fragment LETTER2:                      (CLETTER_H | [_A-Z$#]);
fragment LETTER_OR_DIGIT2:             (CLETTER_H | [_A-Z0-9$#]);

fragment IDENTIFIERX:                  LETTER1 LETTER_OR_DIGIT1*;
fragment IDENTIFIER:                   LETTER2 LETTER_OR_DIGIT2*;

fragment LT_DQUOTE_STRING:             '"' ~'"'+ '"';
//fragment LT_BQUOTE_STRING:             '`' ~'`'+ '`';
//fragment LT_BRACKET_STRING:            '[' (~']' | ']' ']')* ']';

fragment NOLETERDIGIT:                 [^_A-Z#$0-9];

fragment OP_CHARS:                     [<>=+\-&|*%/^?@!~`];

fragment BINARY_FLOAT_INFINITY:        'BINARY_FLOAT_INFINITY';
fragment BINARY_FLOAT_NAN:             'BINARY_FLOAT_NAN';
fragment BINARY_DOUBLE_INFINITY:       'BINARY_DOUBLE_INFINITY';
fragment BINARY_DOUBLE_NAN:            'BINARY_DOUBLE_NAN';
